97a0ac7c83eccc5a82cffeb9ad6c9e7a9bfb0880,h2o-core/src/main/java/water/currents/ASTStrOp.java,ASTToLower,apply,#Env#Env.StackHelp#AST#,90

Before Change


  @Override Val apply( Env env, Env.StackHelp stk, AST asts[] ) {
    Frame fr = stk.track(asts[1].exec(env)).getFrame();
    if (fr.numCols() != 1) throw new IllegalArgumentException("tolower only takes a single column of data. Got "+ fr.numCols()+" columns.");
    if( !fr.anyVec().isEnum() ) throw new IllegalArgumentException("expected categorical column.");
    String[] dom = fr.anyVec().domain();

    for (int i = 0; i < dom.length; ++i)
      dom[i] = dom[i].toLowerCase(Locale.ENGLISH);

    // COW
    Vec v = fr.anyVec().makeCopy(dom);
    return new ValFrame(new Frame(v));
  }
}

After Change


  @Override Val apply( Env env, Env.StackHelp stk, AST asts[] ) {
    Frame fr = stk.track(asts[1].exec(env)).getFrame();
    if (fr.numCols() != 1) throw new IllegalArgumentException("tolower only takes a single column of data. Got "+ fr.numCols()+" columns.");
    Vec vec = fr.anyVec();   assert vec != null;
    if( !vec.isEnum() ) throw new IllegalArgumentException("expected categorical column.");
    String[] dom = vec.domain();

    for (int i = 0; i < dom.length; ++i)
      dom[i] = dom[i].toLowerCase(Locale.ENGLISH);

    // COW
    Vec v = vec.makeCopy(dom);
    return new ValFrame(new Frame(v));
  }
}